\section{Múltiples Buffers}

\textsl{En esta secci\'on se explica el funcionamiento de los
múltiples buffer y su finalidad.}

\vspace*{0.5cm}

% Oracle en su documentaci\'on no revela los detalles de su funcionamiento 
% interno.
% Sin embargo existen ciertas publicaciones al respecto por parte de 
% personas que trabajaron en esos proyectos, y tambi\'en por parte de 
% quienes analizaron el c\'odigo fuente.
Basamos nuestro análisis en la bibliografía mencionada en la 
sección correspondiente.

\vspace*{0.5cm}

Puede pasar que diferentes bloques interfieran entre sí, por lo cual 
en Oracle, se decidió utilizar \textit{m\'ultiples buffers}. 
Estos múltiples buffers en general se adecuan a la mayoría de los sistemas.
Oracle implementa \textit{m\'ultiples buffers} utilizando una división de 
buffers basada en patrones de acceso atipico 
\footnote{\href{http://www.exploreoracle.com/2009/04/02/keep-buffer-pool-and-recycle-buffer-pool}{http://www.exploreoracle.com/2009/04/02/keep-buffer-pool-and-recycle-buffer-pool}}.
El tamaño de cada pool es configurable, pero los pool en sí son fijos, y
son los siguientes:

\begin{itemize}
  \item \textbf{Keep pool}
    Utilizado para objetos que siempre deber\'ian estar en memoria, 
    ya que son muy frecuentemente usados.

  \item \textbf{Recycle pool}
    Utilizado para objetos poco usados que no se desea que interfieran 
    con el resto. En general son datos que no van a ser accedidos 
    frecuentemente, y no se quiere que estos ocupen lugar en el pool default.

  \item \textbf{Default pool} 
    Utilizado para todo lo dem\'as.
\end{itemize}